跳到主要内容

Julia 引用

阐述

是将一段 Julia 代码转换为表达式对象的语法,具有行内 :(...) 和块 quote ... end 两种形式,后者还会包含行号等信息。

插值

在引用中可以用 $ 后跟一个变量或一个值来进行插值,这个值可以是字面量、符号或表达式等。也可以用 $(args...) 语法一次性将多个值插入。

当遇到嵌套的 quote 时,$ 「属于」直接包含它的 quote,只有在这个 quote 出现在顶层时这个 $ 才会被执行。但是,可以用多个 $ 来插值到内层的 quote 中。

实例

julia> ex = :(a in $:((1,2,3)) )
:(a in (1, 2, 3))

julia> args = [:x, :y, :z];

julia> :(f(1, $(args...)))
:(f(1, x, y, z))
julia> x = :(1 + 2);

julia> e = quote quote $x end end
quote
#= none:1 =#
$(Expr(:quote, quote
#= none:1 =#
$(Expr(:$, :x))
end))
end

julia> e = quote quote $$x end end
quote
#= none:1 =#
$(Expr(:quote, quote
#= none:1 =#
$(Expr(:$, :(1 + 2)))
end))
end

性质

相关内容

参考文献